\textbf{Aufgabe:}

Verschlüsseln Sie den String 101010101010 im ECB-Mode,
im CBC-Mode, im CFB-Mode und im OFB-Mode. Verwenden Sie die Permutationschiffre
mit Blocklänge 3 und Schlüssel

\begin{center}
$
k = 
\left(
  \begin{matrix}
  1 & 2 & 3\\
  2 & 1 & 3\\
  \end{matrix}
  \right)
$
\end{center}
Der Initialisierungsvektor ist 000. Im OFB- und CFB-Mode verwenden Sie
$r = 2$.

\textbf{Lösung:}

\textsl{ECB:}

Wir teilen den Klartext in Blöcke der Blocklänge drei ein und erhalten somit $m_1 = 101, m_2 = 010, m_1 = 101,  m_4 = 010$. 

Anschließend wenden wir die Permutation wie in \cite{buchmann} auf Seite 69 Kapitel 4.8.1 an und erhalten:
\begin{center}
\uuline{$c = 011 100 011 100$}
\end{center}


\textsl{CBC:}

gegeben sind wieder:  $m_1 = 101, m_2 = 010, m_1 = 101,  m_4 = 010$. 

Bei CBD gilt:
\begin{center}
$c_0 = IV = 000$, $c_j =  E_k (c_{j-1} \oplus m_j)$, $1 \leq j \leq t$\\
\end{center}
Damit ist
\begin{center}
$c_1 = E_k (c_0 \oplus m_1)= E_k (000 \oplus 101) = 011$\\
$c_2 = E_k (c_1 \oplus m_2)= E_k (011 \oplus 010) = 001$\\
$c_3 = E_k (c_2 \oplus m_3)= E_k (001 \oplus 101) = 010$\\
$c_4 = E_k (c_3 \oplus m_4)= E_k (010 \oplus 010) = 000$\\
\end{center}
und somit der Chiffretext
\begin{center}
\uuline{$c = 011 001 010 000$}
\end{center}

\textsl{CFB:}

Bei der CFB Blockchiffre wird ver- wie entschlüsselt. Da $IV = 000$ bekannt ist, kann vom Empfänger direkt $O_j$ und $t_j$ berechnet werden.
Gegeben ist außerdem $r = 2$.
\begin{center}

$O_j = E_k(I_j)$

$O_1 = E_k(IV) = E_k(000) = 000$

\end{center}

$t_j$ bildet die ersten $r=2$ Bits von $O_j$ ab
\begin{center}
$t_1 = 00$
\end{center}
nun kann der erste Chiffre Block einfach errechnet werden
\begin{center}
$c_j = m_j \oplus t_j$

$c_1 = m_1 \oplus t_1$

$c_1 = 10 \oplus 00 = 10$
\end{center}

Um weiter zu verschlüsseln muss nun $I_2$ errechnet werden. Da $I_1$ und $c_1$ bekannt sind ist dies ohne weiteres möglich.
\begin{center}
$I_{j+1} = 2^r I_j + c_j mod 2^n$

$I_{1} = 2^2 I_0 + c_j mod 2^n$,  $I_0 = IV = 000$

$I_1 = 010$
\end{center}

Nun kann die vollständige Verschlüsselungstabelle errechnet werden

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
$j$ & $I_j$ & $O_j$ & $t_j$ & $m_j$ & $c_j$\\
\hline
1 & 000 & 000 & 00 & \textbf{10} & 10\\
\hline
2 & 010 & 100 & 10 & \textbf{10} & 00\\
\hline
3 & 000 & 000 & 00 & \textbf{10} & 10\\
\hline
4 & 010 & 100 & 10 & \textbf{10} & 00\\
\hline
5 & 000 & 000 & 00 & \textbf{10} & 10\\
\hline
6 & 010 & 100 & 10 & \textbf{10} & 00\\
\hline
\end{tabular}
\end{center}

entsprechend ist der Chiffretext
\begin{center}
\uuline{$c = 10 00 10 00 10 00
$}
\end{center}

\textsl{OFB:}

Die OFB Chiffre ist der CFB Chiffre extrem ähnlich. Es wird ebenfalls ver- wie entschlüsselt. Da $IV = 000$ bekannt ist, kann vom Empfänger direkt $O_j$ und $t_j$ berechnet werden.
Gegeben ist außerdem $r = 2$.

\begin{center}
$O_j = E_k(I_j)$
\end{center}

$t_j$ bildet die ersten $r=2$ Bits von $O_j$ ab
\begin{center}
$t_1 = 00$
\end{center} 

nun kann der erste Chiffre Block einfach errechnet werden
\begin{center}
$c_j = m_j \oplus t_j$

$c_1 = m_1 \oplus t_1$

$c_1 = 10 \oplus 00 = 10$
\end{center}
Um weiter zu verschlüsseln muss nun $I_2$ errechnet werden. Es gilt:
\begin{center}
$I_{j+1} = O_j = E_k(I_j)$

$I_2 = O_1 = E_k(I_1) = E_k(IV) = E_k(000)= 000$
\end{center}
Wie man sieht wechseln sich $O_j$ und $I_j$ immer ab und  sind jeweils 000. Durch die XOR Verknüpfung mit dem Klartext bleibt dieser unverändert - folglich ist der Chiffretext = dem Klartext.

\begin{center}
\uuline{$c = 101010101010$}
\end{center}
